The universal serial bus (USB) provides a low cost solution for attaching peripheral devices to a host, such as a host computer or host server. Devices that are attached to a USB bus are automatically detected and software automatically configures the devices for immediate use, typically without user intervention. The USB devices/peripherals may include devices such as printers, scanners, keyboards, a mouse, digital cameras, digital video cameras, data acquisition devices, modems, speakers, telephones or video phones, storage devices such as ZIP drives, or other peripherals.
A USB specification entitled “Universal Serial Bus Revision 2.0 Specification” available at www.usb.org, the disclosure of which is hereby incorporated by reference in its entirety, dictates that a USB bus can support 127 devices. Typically, a USB bus may include a host connected by a USB cable to a peripheral/device. By convention, data transmitted in the direction of the peripheral device is said to be in the “downstream” direction, while data transmitted in the direction of the host is said to be in the “upstream” direction.
A USB bus can be extended with a hub which can support and drive additional devices. The total number of devices (hubs and peripherals) that can be supported by a single USB host is 127. A number of hubs may be interconnected in a tiered star topology, where each hub acts as the center of a star to which peripherals are attached for a particular tier level. Due to timing constraints, the maximum number of tiers allowed in a USB bus is seven (including the root tier which has the host).
A hub is a repeater and has a hub controller, an upstream port, and a plurality of downstream ports to which one or more peripherals can be attached. A hub broadcasts data to downstream ports and can also transmit data from a downstream port upstream towards the host. The hub controller, which may include a microcontroller or other programmable logic, controls the hub under operations of software. The hub controller communicates with the host computer, and monitors peripherals or other devices attached to the hub. For instance, a hub controller may report to the host computer connection status regarding the peripheral devices coupled with downstream ports of the hub.
Many USB devices have their own built in cable, socket, or connectors. Per the USB specification, “A” and “B” connectors are utilized, where “A” connectors are for making connections “upstream” towards the computer, while “B” connectors are for making connections “downstream” and connect to individual devices or other hubs. The USB specification effectively places a limit of 5 meters (about 16.5 feet) on the length of a USB cable by regulating the propagation delay from a peripheral to the host computer.
As recognized by the present inventor, it would be beneficial to provide a connection between USB peripherals and a host computer of a distance greater than 5 meters. For instance, various industrial or laboratory applications of computer systems often require that the keyboard, mouse, or disk drive of a host computer be remote. Furthermore, there may be other instances a user wishes to connect a USB device to a USB host at a distance greater that 5 meters.
While a system of five interconnected hubs could be provided in order to increase the distance between the peripheral and the host to 25 meters (approximately 82.5 feet), such a system would be disadvantageous because at least two of the five hubs would be required to have their own power source, which may not always be available in the particular environment where the 25 meters of cable and hubs are to be used (for example, in a conduits or trunking embedded in walls, ceilings, or floors). One example of such a system is illustrated in FIG. 1, wherein a host 10 is coupled with a USB device/peripheral 12 through two 5 meter cables 14 and a hub 16. Further, many applications require that a USB system be provided such that an additional hub can be connected to the USB bus, which would require that four hubs be connected at 5 meters each, totaling 20 meters or 66 feet.
Accordingly, as recognized by the present inventor, what is needed is a system, method, and apparatus for connecting USB devices/peripherals at extended distances from a host computer, while preferably not violating any propagation times set forth by the USB standards.
It is against this background that various embodiments of the present invention were developed.